/**
 * 
 */
package mx.fragments;



import mx.content.Content;
import mx.mxgamer.R;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
/**
 * @author v1ctor
 *
 */
public class GameDetailFragment extends Fragment {

	public final static String CURRENT_GAME = "currentGame";
	public int currentGame = -1;

	
	/**
	 * En la inicialización, checamos si hay argumentos que le son entregados al 
	 * fragmento, en la inicialización dinámica, es seguro porque se terminó la creación
	 * de las vistas( inicialización estática)
	 */
	@Override
	public void onStart() {
		super.onStart();
		
		Bundle args = getArguments();
		if (args != null){
			// Aqui ponemos el valor de selección del usuario (Todo es a través del bundle)
			updateGame(args.getInt(CURRENT_GAME));
		}else if( currentGame != -1 ){
			updateGame(currentGame);
		}
	}
	
	/**
	 * Actualiza el juego de la lista que tenemos
	 * @param position
	 */
	public void updateGame(int position) {
		TextView detalle = (TextView) getActivity().findViewById(R.id.detalle);
		
		String[] detalles = Content.GameDetail;

		detalle.setText(detalles[position]);
		currentGame = position;
		
	}

	/**
	 * Cuando se crea lo único que hacemos es verificar que no tenga nada en el bundle
	 * @param inflater
	 * @param container
	 * @param savedInstanceState
	 * @return
	 */
	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		
		// Con esto salvamos en memoria lo que queramos y lo obtenemos de regreso
		// después de cierto tipo de eventos, que destruyen la app (sistema, no usuario)
		// como rotación de pantalla
		if( savedInstanceState != null ){
			this.currentGame = savedInstanceState.getInt(CURRENT_GAME);
		}
		
		// Carga el layout para la vista
		return inflater.inflate(R.layout.view_detalle_juego,container,false);
	}// on create view
	
	/**
	 * Este método permite guardar cosas para que sean recuperadas en la inicialización
	 */
	@Override
	public void onSaveInstanceState(Bundle outState) {
		super.onSaveInstanceState(outState);
		
		// Guarda el estado si se requiere recrear la app.
		outState.putInt(CURRENT_GAME, currentGame);
	}
	
}
